﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using PersistenciaAccessLIB;
using System.Configuration;

namespace KimberlyDashboardLIB
{
    public class Indicador
    {

        #region "Atributos"
        private int _id;
        private int _idPerspectiva;
        private string _nombre;
        private Enumeraciones.Grafico _grafico;
        private Enumeraciones.UnidadMedida _unidadMedida;
        #endregion

        #region "Propiedades"
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }

        public int IdPerspectiva
        {
            get { return _idPerspectiva; }
            set { _idPerspectiva = value; }
        }

        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        public Enumeraciones.Grafico Grafico
        {
            get { return _grafico; }
            set { _grafico = value; }
        }

        public Enumeraciones.UnidadMedida UnidadMedida
        {
            get { return _unidadMedida; }
            set { _unidadMedida = value; }
        }

        #endregion

        #region "Metodos privados"
        /// <summary>
        /// persiste los cambios del indicador actual 
        /// </summary>
        /// <returns></returns>
        public void Actualizar()
        {
            string sql = "";
            Persistencia objPersistencia = new Persistencia(ConfigurationManager.ConnectionStrings["CONEXION"].ToString());

            //Si el id es igual a cero se crea el usuario
            if (this.Id == 0)
            {
                sql = "INSERT INTO Indicador (IdPerspectiva, Nombre, GraficoDefecto, UnidadMedida, Activo)" +
                    "VALUES (" + this.IdPerspectiva + ", '" + this.Nombre + "', '" + this.Grafico.ToString() + "', '" + this.UnidadMedida.ToString() + "', 1)";
                objPersistencia.ExecuteNonQuery(sql);
            }
            else
            {
                sql = "UPDATE Indicador SET IdPerspectiva = " + this.IdPerspectiva + ", Nombre = '" + this.Nombre + "', " +
                    "GraficoDefecto = '" + this.Grafico.ToString() + "', UnidadMedida = '" + this.UnidadMedida.ToString() + "' " +
                    "WHERE Id = " + this.Id.ToString();
                objPersistencia.ExecuteNonQuery(sql);
            }
        }

        /// <summary>
        /// Elimina un indicador (realmente lo inactiva en la base de datos)
        /// </summary>
        /// <param name="id"></param>
        public void Eliminar(int id)
        {
            Persistencia objPersistencia = new Persistencia(ConfigurationManager.ConnectionStrings["CONEXION"].ToString());
            objPersistencia.ExecuteNonQuery("UPDATE Indicador SET Activo = 0 WHERE Id = " + id.ToString());
        }

        #endregion

    }
}
